curl_multi_setopt
为 cURL 并行处理设置一个选项
PHP 5.1.0及以上版本
curl_multi_setopt 函数用于为多个 cURL 句柄设置不同的选项。这个函数通过为多个并发的 cURL 请求配置选项来提高请求效率,尤其适用于使用 curl_multi_init 初始化的多个 cURL 句柄。
curl_multi_setopt(curl_multi_handle, option, value);
成功时返回 true,失败时返回 false。
以下是一个示例,展示如何使用 curl_multi_setopt 设置多个 cURL 请求的选项:
$mh = curl_multi_init(); // 初始化多重 cURL 句柄
<p>$ch1 = curl_init('<a rel="noopener" target="_new" class="" href="http://example.com">http://example.com</a>'); // 初始化第一个 cURL 句柄<br>
$ch2 = curl_init('<a rel="noopener" target="_new" class="" href="http://example.org">http://example.org</a>'); // 初始化第二个 cURL 句柄</p>
<p>curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true); // 设置第一个 cURL 请求选项<br>
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true); // 设置第二个 cURL 请求选项</p>
<p>curl_multi_add_handle($mh, $ch1); // 添加第一个句柄到 multi<br>
curl_multi_add_handle($mh, $ch2); // 添加第二个句柄到 multi</p>
<p>// 使用 curl_multi_setopt 设置其他选项<br>
curl_multi_setopt($mh, CURLOPT_TIMEOUT, 30); // 设置超时时间</p>
<p>$running = null;<br>
do {<br>
curl_multi_exec($mh, $running); // 执行并保持多线程请求<br>
} while ($running);</p>
<p>// 关闭句柄<br>
curl_multi_remove_handle($mh, $ch1);<br>
curl_multi_remove_handle($mh, $ch2);<br>
curl_multi_close($mh);<br>
在此示例中,我们创建了两个独立的 cURL 请求($ch1 和 $ch2),并将它们添加到一个多重句柄 $mh 中。然后使用 curl_multi_setopt 设置超时选项,最后执行多个请求并等待它们完成。